package com.m1.tzolkin.model.buildables;

import java.io.Serializable;

import com.m1.tzolkin.model.ITZStock;
import com.m1.tzolkin.model.board.ITechBoard;
import com.m1.tzolkin.model.exceptions.CannotBuildException;
import com.m1.tzolkin.model.exceptions.NoAvailableSkullException;
import com.m1.tzolkin.model.exceptions.NotAvailableActionException;
import com.m1.tzolkin.model.exceptions.NotEnoughCornException;
import com.m1.tzolkin.model.exceptions.NotEnoughResourceException;
import com.m1.tzolkin.model.util.card.IBuyableCard;

public interface IBuildable extends IBuyableCard<ITZStock>, Serializable {

	
	/**
	 * Dit au plateau b que ce b�timent est achet� par le joueur courant.
	 */
	void buy(ITechBoard b) throws NotEnoughCornException, NotEnoughResourceException, NoAvailableSkullException, NotAvailableActionException, CannotBuildException;
	
}
